/**
 * 
 */
package com.jysz.webcore.ssh.web.convert;

import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

/**
 * @author <a href="mailto:javaengine@outlook.com">Kaca Rich</a>
 *
 */
public class EnumerationConverter extends StrutsTypeConverter {  
  
    @Override  
    public Object convertFromString(Map context, String[] values, Class clazz) {  
        String str = values[0];  
        if (str != null && !"".equals(str)) {  
            try {  
                IEnum[] enums = (IEnum[]) clazz.getMethod("values").invoke(null);// 调用枚举的values方法  
                if (null != enums && enums.length > 0) {  
                    for (IEnum e : enums) {  
                        if (str.equals(e.getIndex().toString())) {  
                            return e;  
                        }  
                    }  
                }  
            } catch (Exception e) {  
                e.printStackTrace();  
            }  
        }  
        return null;  
    }

  
    @Override  
    public String convertToString(Map context, Object o) {  
        return null != o && o instanceof IEnum ? ((IEnum) o).toString() : "";  
    }  
  
}
